iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
0

關連:一對多
這裡舉的例子是每家飲料店可以賣很多及不同的飲料。

第一步,我們先建立 Model:
Model 名稱 Drink。
https://ithelp.ithome.com.tw/upload/images/20190917/20112656pukCZfy8vE.png

各別使用 Rails 的 Model 產生器來產生 Drink,請在終端機輸入:
rails g Model Drink name description:text price:decimal drink_store_id:integer
最後別忘記執行 rails db:migrate

第二步,在 Drink Model 加上 has_many 設定「一對多」關連:
在 DrinkStore & Drink,分別加上 has_manybelongs_to 語法。

# 檔案:app/models/drink_store.rb
class DrinkStore < ApplicationRecord
  belongs_to :user
  has_many :drinks
end
# 檔案:app/models/drink.rb
class Drink < ApplicationRecord
  belongs_to :drink_store
end

這時候以 Drink 的角度來看,設定 has_many :drinks 就會有以下方法可以用:

  • drinks
  • drinks=
  • build
  • create

使用 has_many 語法時,後面的單字一定要加上複數嗎 !?
這跟 Rails 的慣例有關,我個人就會記成,因為是使用 many 這個單字,代表很多的意思,因此後面的單字,就加上複數這樣。


上一篇
[Day15] Ruby on Rails - Model 關聯性,一對一
下一篇
[Day17] Ruby on Rails - Model 關聯性,多對多
系列文
Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言